# _*_ coding: utf-8 _*_
# @Time : 2024-01-19 22:09
# @Author : wf
import bs4
# 安装  pip install bs4

from bs4 import BeautifulSoup

# 默认打开编码格式是 GBK，需要指定编码格式
soup: bs4.BeautifulSoup = BeautifulSoup(open('bs4-test.html', encoding='utf-8'), 'lxml')
# print(type(soup))
# print(soup)

# 根据标签名查找，查找的是第一个
# print(soup.a)
# {'href': '', 'id': '', 'class': ['a1']}
# print(soup.a.attrs)

# bs4的三个 方法
# find--返回第一个符合的
# print(soup.find('a'))
# print(soup.find('a', title='a2'))
# print(soup.find('a', title='a2'))

# class 是关键字
# print(soup.find('a', class_='a1'))


# 返回所有的，list
# print(soup.findAll('a'))

# 获得多个标签，参数应该是列表
# print(soup.findAll(['a', 'span']))

# 查找指定个数
# print(soup.findAll('li', limit=2))


# select 方法 [返回所有的 - list]
# print(soup.select('a'))

# . 代表class - class选择器
# print(soup.select('.a1'))

# id选择器
# print(soup.select('#l1'))

# 属性选择器
# print(soup.select('li[id]'))
# 指定属性
# print(soup.select('li[id="l2"]'))

# 层级选择器
# 后代选择器
# print(soup.select('div li'))
# 子代选择器
# print(soup.select('div>ul>li'))
# print(soup.select('div > ul > li'))


# print(soup.select('a,li'))
# print(soup.select('a,li'))

# obj = soup.select('#d1')[0]
# print(obj.string)
# 推荐使用 get_text()
# print(obj.get_text())

obj = soup.select('#p1')[0]
# 标签名
print(obj.name)
print(obj.attrs)
print(obj.attrs["id"])
print(obj["id"])
print(obj.get("class"))
